package com.yanfan.ba.utils;

import java.util.Map;

public class StringUtil {
    public static void main(String[] args) {
        String input = "DDC-A.DDC-B2-15a.DDC-B2-15a.PYF_B2_4_3-CO";
        String lastDelimiter = getLastDelimiter(input);
        System.out.println("最后一个分隔符是: " + lastDelimiter);

        String result = getSubstringBeforeLastDelimiter(input, lastDelimiter);
        String result1 = getSubstringAfterLastDelimiter(input, lastDelimiter);
        System.out.println("分割后的结果: " + result);
        System.out.println("分割后的结果: " + result1);
    }

    // 获取最后一个分隔符（返回 "-" 或 "_"）
    public static String getLastDelimiter(String input) {
        int lastDashIndex = input.lastIndexOf("-");
        int lastUnderscoreIndex = input.lastIndexOf("_");

        if (lastDashIndex > lastUnderscoreIndex) {
            return "-";
        } else if (lastUnderscoreIndex > lastDashIndex) {
            return "_";
        }
        return "";  // 如果没有找到 "-" 或 "_"
    }

    // 根据最后一个分隔符获取该分隔符前的部分
    public static String getSubstringBeforeLastDelimiter(String input, String delimiter) {
        int lastDelimiterIndex = input.lastIndexOf(delimiter);
        if (lastDelimiterIndex != -1) {
            return input.substring(0, lastDelimiterIndex);  // 截取分隔符前的部分
        }
        return input;  // 如果没有找到分隔符，返回原字符串
    }

    public static String getSubstringAfterLastDelimiter(String input, String delimiter) {
        int lastDelimiterIndex = input.lastIndexOf(delimiter);
        if (lastDelimiterIndex != -1) {
            return input.substring(lastDelimiterIndex + delimiter.length());  // 截取分隔符后的部分
        }
        return input;  // 如果没有找到分隔符，返回原字符串
    }

    /**
     * 以 _ 分割
     *
     * @param input
     * @return
     */
    public static String getFirstPart(String input) {
        // 检查是否包含 '_'
        if (input.contains("_")) {
            // 如果包含 '_', 按 '_' 分割并返回第一个部分
            return input.split("_")[0];
        } else if (input.contains("-")) {
            return input.split("-")[0];
        }
        // 否则，返回原字符串
        return input;
    }

    /**
     * 比较
     *
     * @param name1
     * @param name2
     * @return
     */
    public static boolean areDeviceNamesEqual(String name1, String name2) {
        // 去除下划线和横线
        String normalized1 = name1.replaceAll("[-_]", "");
        String normalized2 = name2.replaceAll("[-_]", "");

        // 比较去除分隔符后的字符串
        return normalized1.equals(normalized2);
    }

    public static String getSplitOrNull(String input) {
        String[] parts = input.split("_");
        return parts.length > 1 ? parts[1] : null;
    }

    public static String classifyAndStore(String input) {
        // 使用正则表达式进行匹配
        if (input.matches(".*集水坑$")) {
            return input;
        }
        return null;
    }

}
